A network storage controller is a system device which controls storage and retrieval of data. An example of a network storage controller is a storage server, which is a processing system that stores and retrieves data on behalf of one of more clients on a network. A network storage controller sometimes manages data in a group of non-volatile mass storage devices such as magnetic or optical disks. Such mass storage devices may be organized into groups of drives, such as into a redundant array of independent disks (RAID). A network storage controller typically includes memory for buffering data to be read from and written to and from the mass storage system. Typical network storage controllers implement the buffer as dynamic random access memory (DRAM).
The non-volatile mass storage devices may be aggregated and divided into volumes including logical units, each identified by a logical unit number (LUN). One or more hosts (e.g., clients) may access the logical units via a network, such as by mapping to the logical units and reading from and writing to the LUNs as virtual mass storage devices. Data may be stored to and retrieved from the logical units by the hosts as though the LUNs were locally attached to the hosts as mass storage devices.
A new network storage controller or a network storage controller otherwise requiring preparation for use requires various parameters and configuration information to be supplied in order for the network storage controller to be used with one or more hosts. Such parameters and information can be numerous and present a challenging obstacle for a network administrator or other user to set up the network storage controller. Further, the speed at which a network storage controller may be prepared for use may be limited by the extensive amount of human interaction required to prepare the network storage controller for use.
A network administrator having modest knowledge or even advanced knowledge of processing systems may be daunted by the setup procedures required to use a network storage controller, especially one desired for use in large-scale networks. Such an administrator may be confronted with a command line interface requiring memorization of parameters and commands for setup. Even a more sophisticated user interface may still require a user to precisely identify numerous parameters such as an address for use by the network storage controller. A successful administrator providing configuration information then is confronted with the task of preparing storage for use by a host (i.e., “provisioning”).